/**************************************************************************/
/*                                                                        */
/* Copyright (c) 2017 KYE Company                                       */
/* 跨越速运集团有限公司版权所有                                           */
/*                                                                        */
/* PROPRIETARY RIGHTS of KYE Company are involved in the                */
/* subject matter of this material. All manufacturing, reproduction, use, */
/* and sales rights pertaining to this subject matter are governed by the */
/* license agreement. The recipient of this software implicitly accepts   */
/* the terms of the license.                                              */
/* 本软件文档资料是跨越速运集团有限公司的资产，任何人士阅读和                   */
/* 使用本资料必须获得相应的书面授权，承担保密责任和接受相应的法律约束。                 */
/*                                                                        */
/**************************************************************************/

/**
  * <pre>
  * 作   者：liwei
  * 创建日期：2018-1-4
  * </pre>
  */

package com.kyexpress.common.hrinterview.api.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.kyexpress.common.hrinterview.api.bo.EmployeeStudyExpBO;
import com.kyexpress.common.hrinterview.api.bo.EmployeeUploadBO;
import com.kyexpress.common.hrinterview.api.bo.EmployeeWorkExpBO;
import com.kyexpress.framework.model.GenericModel;

import java.io.Serializable;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.List;

/**
 * <pre>
 * 面试人员表实体类
 * 数据库表名称：employee
 * </pre>
 */
public class Employee extends GenericModel<Long> implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 字段名称：应聘职位
     * 
     * 数据库字段信息:position VARCHAR(20)
     */
    private String position;

    /**
     * 字段名称：入职/到岗时间
     * 
     * 数据库字段信息:entry_time VARCHAR
     */
    private String entryTime;

    /**
     * 字段名称：面试时间
     * 
     * 数据库字段信息:interview_time DATETIME(19)
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8"
    )
    private Timestamp interviewTime;

    /**
     * 字段名称：面试地址
     * 
     * 数据库字段信息:office_location VARCHAR(100)
     */
    private String officeLocation;

    /**
     * 字段名称：姓名
     * 
     * 数据库字段信息:name VARCHAR(32)
     */
    private String name;

    /**
     * 字段名称：性别
            0-男
            1-女
     * 
     * 数据库字段信息:sex SMALLINT(5)
     */
    private Integer sex;

    /**
     * 字段名称：个人电话，联系电话
     * 
     * 数据库字段信息:tel VARCHAR(32)
     */
    private String tel;

    /**
     * 字段名称：出生日期
     * 
     * 数据库字段信息:birthday DATE(10)
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
    )
    private Date birthday;

    /**
     * 字段名称：年龄
     * 
     * 数据库字段信息:age SMALLINT(5)
     */
    private Integer age;

    /**
     * 字段名称：民族
     * 
     * 数据库字段信息:nation VARCHAR(32)
     */
    private String nation;

    /**
     * 字段名称：籍贯
     * 
     * 数据库字段信息:native_place VARCHAR(32)
     */
    private String nativePlace;

    /**
     * 字段名称：身高,单位是CM
     * 
     * 数据库字段信息:height SMALLINT(5)
     */
    private Integer height;

    /**
     * 字段名称：体重,单位KG
     * 
     * 数据库字段信息:weight SMALLINT(5)
     */
    private Integer weight;

    /**
     * 字段名称：血型
     * 
     * 数据库字段信息:blood_type VARCHAR(32)
     */
    private String bloodType;

    /**
     * 字段名称：身体状况
     * 
     * 数据库字段信息:ill_history VARCHAR(32)
     */
    private String illHistory;

    /**
     * 字段名称：微信
     * 
     * 数据库字段信息:wx VARCHAR(32)
     */
    private String wx;

    /**
     * 字段名称：qq
     * 
     * 数据库字段信息:qq VARCHAR(32)
     */
    private String qq;

    /**
     * 字段名称：毕业学校
     * 
     * 数据库字段信息:school VARCHAR(32)
     */
    private String school;

    /**
     * 字段名称：文化程序，学历
     * 
     * 数据库字段信息:education INT(10)
     */
    private Long education;

    /**
     * 字段名称：专业
     * 
     * 数据库字段信息:profession VARCHAR(32)
     */
    private String profession;

    /**
     * 字段名称：婚否
     * '10': '未婚',
     * '20': '已婚',
     * 
     * 数据库字段信息:marry INT(4)
     */
    private Integer marry;

    /**
     * 字段名称：语言
     * 
     * 数据库字段信息:language VARCHAR(100)
     */
    private String language;

    /**
     * 字段名称：技能，个人特长
     * 
     * 数据库字段信息:skill VARCHAR(100)
     */
    private String skill;

    /**
     * 字段名称：期望薪资
     * 
     * 数据库字段信息:expectation_salary VARCHAR(32)
     */
    private String expectationSalary;

    /**
     * 字段名称：身份证号码
     * 
     * 数据库字段信息:identity_cart VARCHAR(32)
     */
    private String identityCart;

    /**
     * 字段名称：银行卡号码
     * 
     * 数据库字段信息:bank_card VARCHAR(32)
     */
    private String bankCard;

    /**
     * 字段名称：办公电话
     * 
     * 数据库字段信息:office_tel VARCHAR(32)
     */
    private String officeTel;

    /**
     * 字段名称：居住地址，家庭地址
     * 
     * 数据库字段信息:address VARCHAR(100)
     */
    private String address;

    /**
     * 字段名称：联系人名称，紧急联系人
     * 
     * 数据库字段信息:contact_name VARCHAR(32)
     */
    private String contactName;

    /**
     * 字段名称：联系人手机，紧急联系人手机
     * 
     * 数据库字段信息:contact_tel VARCHAR(32)
     */
    private String contactTel;

    /**
     * 字段名称：联系人与本人关系
     * 
     * 数据库字段信息:contact_relation VARCHAR(32)
     */
    private String contactRelation;

    /**
     * 字段名称：招聘部门，根据面试官所属部门来控制显示
     * 
     * 数据库字段信息:department VARCHAR(32)
     */
    private String department;

    /**
     * 字段名称：试用薪资
     * 
     * 数据库字段信息:probation_salary VARCHAR(32)
     */
    private String probationSalary;

    /**
     * 字段名称：转正薪资
     * 
     * 数据库字段信息:become_salary VARCHAR(32)
     */
    private String becomeSalary;

    /**
     * 字段名称：试用期限，单位月，枚举值1，2，3
     * 
     * 数据库字段信息:probation_time SMALLINT(5)
     */
    private Integer probationTime;

    /**
     * 字段名称：入职时间
     * 
     * 数据库字段信息:gang_time DATE(10)
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
    )
    private Date gangTime;

    /**
     * 字段名称：意见说明
     * 
     * 数据库字段信息:opinion VARCHAR(100)
     */
    private String opinion;

    /**
     * 字段名称：是否需要背调
            0-否
            1-是
     * 
     * 数据库字段信息:background_check SMALLINT(5)
     */
    private Integer backgroundCheck;

    /**
     * 字段名称：状态
                  '1': '待面试',
                  '2': '未到达',
                  '3': '面试通过',
                  '4': '面试未通过',
                  '5':'待定'
                  '6': '入职中',
                  '7': '入职完成'
            入职成功后，二维码不可用
     * 
     * 数据库字段信息:status SMALLINT(5)
     */
    private Integer status;

    /**
     * 字段名称：是否已发offer
            0-未发
            1-已发
     * 
     * 数据库字段信息:offer SMALLINT(5)
     */
    private Integer offer;

    private String email;

    private String registered;

    /** 批量操作*/
    private EmployeeStudyExpBO studyExp;

    private EmployeeWorkExpBO workExp;

    private EmployeeUploadBO upload;

    /** get展现列表 */
    private List<EmployeeStudyExp> studyExpList;

    private List<EmployeeWorkExp> workExpList;

    private List<EmployeeUpload> uploadList;

    public Employee() {
    }	
    public String getPosition() {
        return this.position;
    }

    public void setPosition(String position) {
        this.position = position;
    }
	
    public Timestamp getInterviewTime() {
        return this.interviewTime;
    }

    public void setInterviewTime(Timestamp interviewTime) {
        this.interviewTime = interviewTime;
    }
	
    public String getOfficeLocation() {
        return this.officeLocation;
    }

    public void setOfficeLocation(String officeLocation) {
        this.officeLocation = officeLocation;
    }
	
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
	
    public Integer getSex() {
        return this.sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }
	
    public String getTel() {
        return this.tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }
	
    public Date getBirthday() {
        return this.birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
	
    public Integer getAge() {
        return this.age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
	
    public String getNation() {
        return this.nation;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }
	
    public String getNativePlace() {
        return this.nativePlace;
    }

    public void setNativePlace(String nativePlace) {
        this.nativePlace = nativePlace;
    }
	
    public Integer getHeight() {
        return this.height;
    }

    public void setHeight(Integer height) {
        this.height = height;
    }
	
    public Integer getWeight() {
        return this.weight;
    }

    public void setWeight(Integer weight) {
        this.weight = weight;
    }
	
    public String getBloodType() {
        return this.bloodType;
    }

    public void setBloodType(String bloodType) {
        this.bloodType = bloodType;
    }
	
    public String getIllHistory() {
        return this.illHistory;
    }

    public void setIllHistory(String illHistory) {
        this.illHistory = illHistory;
    }
	
    public String getWx() {
        return this.wx;
    }

    public void setWx(String wx) {
        this.wx = wx;
    }
	
    public String getQq() {
        return this.qq;
    }

    public void setQq(String qq) {
        this.qq = qq;
    }
	
    public String getSchool() {
        return this.school;
    }

    public void setSchool(String school) {
        this.school = school;
    }
	
    public Long getEducation() {
        return this.education;
    }

    public void setEducation(Long education) {
        this.education = education;
    }
	
    public String getProfession() {
        return this.profession;
    }

    public void setProfession(String profession) {
        this.profession = profession;
    }
	
    public Integer getMarry() {
        return this.marry;
    }

    public void setMarry(Integer marry) {
        this.marry = marry;
    }
	
    public String getLanguage() {
        return this.language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }
	
    public String getSkill() {
        return this.skill;
    }

    public void setSkill(String skill) {
        this.skill = skill;
    }
	
    public String getExpectationSalary() {
        return this.expectationSalary;
    }

    public void setExpectationSalary(String expectationSalary) {
        this.expectationSalary = expectationSalary;
    }
	
    public String getIdentityCart() {
        return this.identityCart;
    }

    public void setIdentityCart(String identityCart) {
        this.identityCart = identityCart;
    }
	
    public String getBankCard() {
        return this.bankCard;
    }

    public void setBankCard(String bankCard) {
        this.bankCard = bankCard;
    }
	
    public String getOfficeTel() {
        return this.officeTel;
    }

    public void setOfficeTel(String officeTel) {
        this.officeTel = officeTel;
    }
	
    public String getAddress() {
        return this.address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
	
    public String getContactName() {
        return this.contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }
	
    public String getContactTel() {
        return this.contactTel;
    }

    public void setContactTel(String contactTel) {
        this.contactTel = contactTel;
    }
	
    public String getContactRelation() {
        return this.contactRelation;
    }

    public void setContactRelation(String contactRelation) {
        this.contactRelation = contactRelation;
    }
	
    public String getDepartment() {
        return this.department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }
	
    public String getProbationSalary() {
        return this.probationSalary;
    }

    public void setProbationSalary(String probationSalary) {
        this.probationSalary = probationSalary;
    }
	
    public String getBecomeSalary() {
        return this.becomeSalary;
    }

    public void setBecomeSalary(String becomeSalary) {
        this.becomeSalary = becomeSalary;
    }
	
    public Integer getProbationTime() {
        return this.probationTime;
    }

    public void setProbationTime(Integer probationTime) {
        this.probationTime = probationTime;
    }
	
    public Date getGangTime() {
        return this.gangTime;
    }

    public void setGangTime(Date gangTime) {
        this.gangTime = gangTime;
    }
	
    public String getOpinion() {
        return this.opinion;
    }

    public void setOpinion(String opinion) {
        this.opinion = opinion;
    }
	
    public Integer getBackgroundCheck() {
        return this.backgroundCheck;
    }

    public void setBackgroundCheck(Integer backgroundCheck) {
        this.backgroundCheck = backgroundCheck;
    }
	
    public Integer getStatus() {
        return this.status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }
	
    public Integer getOffer() {
        return this.offer;
    }

    public void setOffer(Integer offer) {
        this.offer = offer;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public EmployeeStudyExpBO getStudyExp() {
        return studyExp;
    }

    public void setStudyExp(EmployeeStudyExpBO studyExp) {
        this.studyExp = studyExp;
    }

    public EmployeeWorkExpBO getWorkExp() {
        return workExp;
    }

    public void setWorkExp(EmployeeWorkExpBO workExp) {
        this.workExp = workExp;
    }

    public EmployeeUploadBO getUpload() {
        return upload;
    }

    public void setUpload(EmployeeUploadBO upload) {
        this.upload = upload;
    }

    public List<EmployeeStudyExp> getStudyExpList() {
        return studyExpList;
    }

    public void setStudyExpList(List<EmployeeStudyExp> studyExpList) {
        this.studyExpList = studyExpList;
    }

    public List<EmployeeWorkExp> getWorkExpList() {
        return workExpList;
    }

    public void setWorkExpList(List<EmployeeWorkExp> workExpList) {
        this.workExpList = workExpList;
    }

    public List<EmployeeUpload> getUploadList() {
        return uploadList;
    }

    public void setUploadList(List<EmployeeUpload> uploadList) {
        this.uploadList = uploadList;
    }

    public String getEntryTime() {
        return entryTime;
    }

    public void setEntryTime(String entryTime) {
        this.entryTime = entryTime;
    }

    public String getRegistered() {
        return registered;
    }

    public void setRegistered(String registered) {
        this.registered = registered;
    }
}